package com.sojson.entity.po;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.sojson.annotation.Excel;
import com.sojson.base.impl.BaseDto;
import com.sojson.enums.ESalaryStatus;
import com.sojson.enums.core.EDelFlagStatus;
import com.sojson.util.DateUtil;
import com.sojson.util.id.GUIDUtil;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 工资Bean
 * 
 * @author liu
 * @date 2021-05-23
 */
@ApiModel("工资Bean")
public class Salary extends BaseDto {

    /**
     * 此文件由工具自动生成，手动添加内容请放至末尾
     */

    private static final long serialVersionUID = 1621786278063L;

    @ApiModelProperty("订单号")
    private String orderNo;
    @ApiModelProperty("导入批次编号")
    private String importNo;
    @ApiModelProperty("发放批次编号")
    private String issueNo;
    @Excel(name = "职位ID")
    @ApiModelProperty("职位ID")
    private Integer postId;
    @Excel(name = "发放日期")
    @ApiModelProperty("发放日期")
    private Date issueDate;
    @ApiModelProperty("用户ID")
    private Integer userId;
    @Excel(name = "用户手机号")
    @ApiModelProperty("手机号")
    private String mobile;
    @Excel(name = "金额")
    @ApiModelProperty("金额")
    private BigDecimal total;
    @ApiModelProperty("状态(1:已创建,2:创建失败,3:已确认,4;已发放,5:发放失败)")
    private Integer status;
    @ApiModelProperty("状态信息")
    private String msg;
    @ApiModelProperty("删除标志(1:存在,2:删除)")
    private Integer delFlag;
    @ApiModelProperty("创建时间")
    private Date createdAt;
    @ApiModelProperty("更新时间")
    private Date updatedAt;
    @ApiModelProperty("ID数组")
    private Integer[] idArr;
    @ApiModelProperty("ID集合")
    private List<Integer> ids;
    @ApiModelProperty("用户ID集合")
    private List<Integer> userIds;
    /** 工资集合 */
    private List<Salary> salarys;

    /**
     * 以上由工具自动生成，以下为手动添加
     */

       /**
        * Empty constructor
        */
    public Salary() {

    }

    /**
     * 此文件由工具自动生成，手动添加内容请放至末尾
     */

    /**
     * 获取 订单号
     */
    public String getOrderNo() {
        return orderNo;
    }

    /**
     * 设置 订单号
     */
    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    /**
     * 获取 导入批次编号
     */
    public String getImportNo() {
        return importNo;
    }

    /**
     * 设置 导入批次编号
     */
    public void setImportNo(String importNo) {
        this.importNo = importNo;
    }

    /**
     * 获取 发放批次编号
     */
    public String getIssueNo() {
        return issueNo;
    }

    /**
     * 设置 发放批次编号
     */
    public void setIssueNo(String issueNo) {
        this.issueNo = issueNo;
    }

    /**
     * 获取 职位ID
     */
    public Integer getPostId() {
        return postId;
    }

    /**
     * 设置 职位ID
     */
    public void setPostId(Integer postId) {
        this.postId = postId;
    }

    /**
     * 获取 发放日期
     */
    public Date getIssueDate() {
        return issueDate;
    }

    /**
     * 设置 发放日期
     */
    public void setIssueDate(Date issueDate) {
        this.issueDate = issueDate;
    }

    /**
     * 获取 用户ID
     */
    public Integer getUserId() {
        return userId;
    }

    /**
     * 设置 用户ID
     */
    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    /**
     * 获取 手机号
     */
    public String getMobile() {
        return mobile;
    }

    /**
     * 设置 手机号
     */
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    /**
     * 获取 金额
     */
    public BigDecimal getTotal() {
        return total;
    }

    /**
     * 设置 金额
     */
    public void setTotal(BigDecimal total) {
        this.total = total;
    }

    /**
     * 获取 状态(1:已创建,2:创建失败,3:已确认,4;已发放,5:发放失败)
     */
    public Integer getStatus() {
        return status;
    }

    /**
     * 设置 状态(1:已创建,2:创建失败,3:已确认,4;已发放,5:发放失败)
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    /**
     * 获取 状态信息
     */
    public String getMsg() {
        return msg;
    }

    /**
     * 设置 状态信息
     */
    public void setMsg(String msg) {
        this.msg = msg;
    }

    /**
     * 获取 删除标志(1:存在,2:删除)
     */
    public Integer getDelFlag() {
        return delFlag;
    }

    /**
     * 设置 删除标志(1:存在,2:删除)
     */
    public void setDelFlag(Integer delFlag) {
        this.delFlag = delFlag;
    }

    /**
     * 获取 创建时间
     */
    public Date getCreatedAt() {
        return createdAt;
    }

    /**
     * 设置 创建时间
     */
    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    /**
     * 获取 更新时间
     */
    public Date getUpdatedAt() {
        return updatedAt;
    }

    /**
     * 设置 更新时间
     */
    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }

    /**
     * 获取ID数组
     * 
     * @return
     */
    public Integer[] getIdArr() {
        return idArr;
    }

    /**
     * 设置ID数组
     * 
     * @param idArr
     */
    public void setIdArr(Integer[] idArr) {
        this.idArr = idArr;
    }

    /**
     * 获取 ID集合
     */
    public List<Integer> getIds() {
        return ids;
    }

    /**
     * 设置 ID集合
     */
    public void setIds(List<Integer> ids) {
        this.ids = ids;
    }

    /**
     * 获取 用户ID集合
     */
    public List<Integer> getUserIds() {
        return userIds;
    }

    /**
     * 设置 用户ID集合
     */
    public void setUserIds(List<Integer> userIds) {
        this.userIds = userIds;
    }

    /**
     * 获取 工资集合
     */
    public List<Salary> getSalarys() {
        return salarys;
    }

    /**
     * 设置 工资集合
     */
    public void setSalarys(List<Salary> salarys) {
        this.salarys = salarys;
    }

    /**
     * 以上由工具自动生成，以下为手动添加
     */

    /**
     * 插入初始化
     */
    public void insertInit(String importNo) {
        setOrderNo(GUIDUtil.generateGuid());
        setImportNo(importNo);
        setStatus(ESalaryStatus.AFFIRM.getCode());
        setDelFlag(EDelFlagStatus.NO.getCode());
        Date nowDate = DateUtil.nowDate();
        setCreatedAt(nowDate);
        setUpdatedAt(getCreatedAt());
    }

    /**
     * 更新初始化
     */
    public void updateInit() {
        Date now = DateUtil.nowDate();
        setUpdatedAt(now);
    }

}